profiler: Make profiler-is-running a macro
authorAlexander Larsson <alexl@redhat.com>
Wed, 12 Feb 2020 10:05:01 +0000 (11:05 +0100)
committerAlexander Larsson <alexl@redhat.com>
Wed, 12 Feb 2020 10:05:01 +0000 (11:05 +0100)
When we use if (GDK_PROFILER_IS_RUNNING) this means we get an
inlined if (FALSE) when the compiler support is not compiled in, which
gets rid of all the related code completely.

We also expand to  G_UNLIKELY(gdk_profiler_is_running ()) in the supported
case which might cause somewhat better code generation.

18 files changed:
gdk/broadway/gdksurface-broadway.c
gdk/gdkdrawcontext.c
gdk/gdkframeclock.c
gdk/gdkframeclockidle.c
gdk/gdkprofilerprivate.h
gdk/gdksurface.c
gdk/wayland/gdkdisplay-wayland.c
gdk/wayland/gdksurface-wayland.c
gdk/x11/gdkdisplay-x11.c
gsk/gl/gskglrenderer.c
gsk/vulkan/gskvulkanrenderer.c
gtk/gtkapplication.c
gtk/gtkcssnode.c
gtk/gtkcssprovider.c
gtk/gtkemojichooser.c
gtk/gtkicontheme.c
gtk/gtkwidget.c
gtk/gtkwindow.c

index 5d2426b687e6814f9b08d65659224ea48ec0883f..0f2411f63aaba157d122bf33302180d07124fdd8 100644 (file)
@@ -125,7 +125,7 @@ _gdk_broadway_roundtrip_notify (GdkSurface  *surface,
       if ((_gdk_debug_flags & GDK_DEBUG_FRAMES) != 0)
         _gdk_frame_clock_debug_print_timings (clock, timings);
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     _gdk_frame_clock_add_timings_to_profiler (clock, timings);
 #endif
     }
index 5c25d8740756bfae9cd62956458968d8c2a9adb3..35a7fea2829ae7e3fda69b256f547f7bbd168844 100644 (file)
@@ -383,7 +383,7 @@ gdk_draw_context_end_frame (GdkDrawContext *context)
   GDK_DRAW_CONTEXT_GET_CLASS (context)->end_frame (context, priv->frame_region);
 
 #ifdef G_ENABLE_DEBUG
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     gdk_profiler_set_int_counter (pixels_counter,
                                   g_get_monotonic_time (),
                                   region_get_pixels (priv->frame_region));
index de5deb887acbf09e4db8c37244f572f63c5e70f0..7d3277f7510b99c46b271c7ea78d30296f4363b3 100644 (file)
@@ -651,7 +651,7 @@ _gdk_frame_clock_emit_flush_events (GdkFrameClock *frame_clock)
 
   g_signal_emit (frame_clock, signals[FLUSH_EVENTS], 0);
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     {
       gint64 after = g_get_monotonic_time ();
       gdk_profiler_add_mark (before, (after - before), "frameclock", "flush-events");
@@ -665,7 +665,7 @@ _gdk_frame_clock_emit_before_paint (GdkFrameClock *frame_clock)
 
   g_signal_emit (frame_clock, signals[BEFORE_PAINT], 0);
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     {
       gint64 after = g_get_monotonic_time ();
       gdk_profiler_add_mark (before, (after - before), "frameclock", "before-paint");
@@ -679,7 +679,7 @@ _gdk_frame_clock_emit_update (GdkFrameClock *frame_clock)
 
   g_signal_emit (frame_clock, signals[UPDATE], 0);
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     {
       gint64 after = g_get_monotonic_time ();
       gdk_profiler_add_mark (before, (after - before), "frameclock", "update");
@@ -693,7 +693,7 @@ _gdk_frame_clock_emit_layout (GdkFrameClock *frame_clock)
 
   g_signal_emit (frame_clock, signals[LAYOUT], 0);
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     {
       gint64 after = g_get_monotonic_time ();
       gdk_profiler_add_mark (before, (after - before), "frameclock", "layout");
@@ -707,7 +707,7 @@ _gdk_frame_clock_emit_paint (GdkFrameClock *frame_clock)
 
   g_signal_emit (frame_clock, signals[PAINT], 0);
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     {
       gint64 after = g_get_monotonic_time ();
       gdk_profiler_add_mark (before, (after - before), "frameclock", "paint");
@@ -721,7 +721,7 @@ _gdk_frame_clock_emit_after_paint (GdkFrameClock *frame_clock)
 
   g_signal_emit (frame_clock, signals[AFTER_PAINT], 0);
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     {
       gint64 after = g_get_monotonic_time ();
       gdk_profiler_add_mark (before, (after - before), "frameclock", "after-paint");
@@ -735,7 +735,7 @@ _gdk_frame_clock_emit_resume_events (GdkFrameClock *frame_clock)
 
   g_signal_emit (frame_clock, signals[RESUME_EVENTS], 0);
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     {
       gint64 after = g_get_monotonic_time ();
       gdk_profiler_add_mark (before, (after - before), "frameclock", "resume-events");
index b350924ce2522c6a675dee6f687ca161788ba755..f7d03fa79a2bfd15cf6f069b9cc574d1b607682e 100644 (file)
@@ -501,7 +501,7 @@ gdk_frame_clock_paint_idle (void *data)
   if (priv->freeze_count == 0)
     priv->sleep_serial = get_sleep_serial ();
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     gdk_profiler_add_mark (before, (g_get_monotonic_time () - before), "frameclock", "paint_idle");
 
   return FALSE;
@@ -565,7 +565,7 @@ gdk_frame_clock_idle_freeze (GdkFrameClock *clock)
 
   if (priv->freeze_count == 0)
     {
-      if (gdk_profiler_is_running ())
+      if (GDK_PROFILER_IS_RUNNING)
         priv->freeze_time = g_get_monotonic_time ();
     }
 
@@ -594,7 +594,7 @@ gdk_frame_clock_idle_thaw (GdkFrameClock *clock)
 
       priv->sleep_serial = get_sleep_serial ();
 
-      if (gdk_profiler_is_running ())
+      if (GDK_PROFILER_IS_RUNNING)
         {
           if (priv->freeze_time != 0)
             {
index 99558e3adfcec2acc4bfb8326f9808dab5312218..1c68739e0ec628321954d00ad2e254a05413822d 100644 (file)
 
 G_BEGIN_DECLS
 
+/* Ensure we included config.h as needed for the below HAVE_SYSPROF_CAPTURE check */
+#ifndef GETTEXT_PACKAGE
+#error "config.h was not included before gdkprofilerprivate.h."
+#endif
+
+/* We make this a macro you use as if (GDK_PROFILER_IS_RUNNING) because that
+ * way we can ensure all the code is compiled out when not supported, and
+ * we can add a G_UNLIKELY() for better codegen if it is.
+ */
+#ifdef HAVE_SYSPROF_CAPTURE
+#define GDK_PROFILER_IS_RUNNING G_UNLIKELY (gdk_profiler_is_running ())
+#else
+#define GDK_PROFILER_IS_RUNNING FALSE
+#endif
+
 void     gdk_profiler_start      (int fd);
 void     gdk_profiler_stop       (void);
 gboolean gdk_profiler_is_running (void);
index 9c95736aed4092f6c457a84ac7c583858b666748..e8485f2034d4cb8aae9483636cfa11c3c783820b 100644 (file)
@@ -4132,7 +4132,7 @@ gdk_surface_handle_event (GdkEvent *event)
       g_signal_emit (gdk_event_get_surface (event), signals[EVENT], 0, event, &handled);
     }
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     add_event_mark (event, begin_time, g_get_monotonic_time () - begin_time);
 
   return handled;
index 59ffdea73c488bc5add09da84c9aaf8cc994e114..224344042181922b4bdc64080fe834238b5913d9 100644 (file)
@@ -1153,7 +1153,7 @@ _gdk_wayland_display_load_cursor_theme (GdkWaylandDisplay *display_wayland)
   gdk_wayland_display_set_cursor_theme (GDK_DISPLAY (display_wayland), name, size);
   g_value_unset (&v);
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     {
       gdk_profiler_add_mark (before, (g_get_monotonic_time () - before), "wayland", "load cursor theme");
     }
index 58d94881a14db3088ca4900724a35b88de9f7ed1..c93ec998b173012379f3cb90bd4bbbd62c0ec925 100644 (file)
@@ -398,7 +398,7 @@ frame_callback (void               *data,
     _gdk_frame_clock_debug_print_timings (clock, timings);
 #endif
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     _gdk_frame_clock_add_timings_to_profiler (clock, timings);
 }
 
index d270929cf048833f776cd47edae5529b7dfbec69..e13f74b822e84798ee7c0cead8d38afc6044ad29 100644 (file)
@@ -1284,7 +1284,7 @@ _gdk_wm_protocols_filter (const XEvent *xevent,
               if (GDK_DISPLAY_DEBUG_CHECK (display, FRAMES))
                 _gdk_frame_clock_debug_print_timings (clock, timings);
 
-              if (gdk_profiler_is_running ())
+              if (GDK_PROFILER_IS_RUNNING)
                 _gdk_frame_clock_add_timings_to_profiler (clock, timings);
 #endif /* G_ENABLE_DEBUG */
             }
index b1556f831f1c123ea832998a707419f1846e4735..fac7f266c94d572b5671d3f7e5ecaebc50a2838c 100644 (file)
@@ -2857,7 +2857,7 @@ gsk_gl_renderer_realize (GskRenderer  *renderer,
   self->icon_cache = get_icon_cache_for_display (gdk_surface_get_display (surface), self->atlases);
   gsk_gl_shadow_cache_init (&self->shadow_cache);
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     gdk_profiler_add_mark (before, (g_get_monotonic_time () - before), "gl renderer realize", NULL);
 
   return TRUE;
@@ -3561,7 +3561,7 @@ gsk_gl_renderer_do_render (GskRenderer           *renderer,
 
   gsk_profiler_push_samples (profiler);
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     gdk_profiler_add_mark (start_time, cpu_time, "GL render", "");
 
 #endif
index cd10a31857a28dd4854162a6e6cced715ab3ad51..7f3eeab9ae6ae2f5e82cac2f17a6a91936a114ad 100644 (file)
@@ -211,7 +211,7 @@ gsk_vulkan_renderer_render_texture (GskRenderer           *renderer,
 
   gsk_profiler_push_samples (profiler);
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     {
       gdk_profiler_add_mark (start_time, cpu_time, "render", "");
       gdk_profiler_set_int_counter (texture_pixels_counter,
index 6885c4e44f872abb57adfa74093b23a96b746cf2..be3758376cc36b03061ddc8c065b4cde91c2635a 100644 (file)
@@ -306,7 +306,7 @@ gtk_application_startup (GApplication *g_application)
 
   before2 = g_get_monotonic_time ();
   gtk_init ();
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     gdk_profiler_add_mark (before2, (g_get_monotonic_time () - before2), "gtk init", NULL);
 
   priv->impl = gtk_application_impl_new (application, gdk_display_get_default ());
@@ -314,7 +314,7 @@ gtk_application_startup (GApplication *g_application)
 
   gtk_application_load_resources (application);
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     gdk_profiler_add_mark (before, (g_get_monotonic_time () - before), "gtk application startup", NULL);
 }
 
@@ -590,7 +590,7 @@ sysprof_profiler_method_call (GDBusConnection       *connection,
       int fd = -1;
       int idx;
 
-      if (gdk_profiler_is_running ())
+      if (GDK_PROFILER_IS_RUNNING)
         {
           g_dbus_method_invocation_return_error (invocation,
                                                  G_DBUS_ERROR,
@@ -612,7 +612,7 @@ sysprof_profiler_method_call (GDBusConnection       *connection,
     }
   else if (strcmp (method_name, "Stop") == 0)
     {
-      if (!gdk_profiler_is_running ())
+      if (!GDK_PROFILER_IS_RUNNING)
         {
           g_dbus_method_invocation_return_error (invocation,
                                                  G_DBUS_ERROR,
index 03fd29a79563864d7dcfd2983ac22dd445b4d096..081662b0846bad5bb8729d15913a042062a222ac 100644 (file)
@@ -1351,7 +1351,7 @@ gtk_css_node_validate (GtkCssNode *cssnode)
 
   gtk_css_node_validate_internal (cssnode, &filter, timestamp);
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     {
       gint64 after = g_get_monotonic_time ();
       gdk_profiler_add_mark (before, (after - before), "css validation", "");
index 986d38a40dd4a503f2749d1578d0e79451eca0ef..3747b3507621fc49ddb1e44a1c28fd69174d4d77 100644 (file)
@@ -1009,7 +1009,7 @@ gtk_css_provider_postprocess (GtkCssProvider *css_provider)
     }
 #endif
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     gdk_profiler_add_mark (before, (g_get_monotonic_time () - before), "create selector tree", NULL);
 }
 
@@ -1068,7 +1068,7 @@ gtk_css_provider_load_internal (GtkCssProvider *self,
       g_bytes_unref (bytes);
     }
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     {
       char *uri = g_file_get_uri (file);
       gdk_profiler_add_mark (before, (g_get_monotonic_time () - before), "theme load", uri);
index a82eaf9e2edccb889af4f19000be737a70fbda54..d317cfc0c5d8b7ac178c7505e03da2a2513e746d 100644 (file)
@@ -465,7 +465,7 @@ populate_emoji_chooser (gpointer data)
       now = g_get_monotonic_time ();
       if (now > start + 8000)
         {
-          if (gdk_profiler_is_running ())
+          if (GDK_PROFILER_IS_RUNNING)
             gdk_profiler_add_mark (start, (now - start), "emojichooser", "populate");
           return G_SOURCE_CONTINUE;
         }
@@ -476,7 +476,7 @@ populate_emoji_chooser (gpointer data)
   chooser->box = NULL;
   chooser->populate_idle = 0;
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     {
       now = g_get_monotonic_time ();
       gdk_profiler_add_mark (start, (now - start), "emojichooser", "populate (finish)");
index 398f5558de98652e7642b7c1a6c33701d0b18967..38bb7c0f1a81671baec2f270a61d8281c31c4ebd 100644 (file)
@@ -1846,7 +1846,7 @@ ensure_valid_themes (GtkIconTheme *self,
 
       load_themes (self);
 
-      if (gdk_profiler_is_running ())
+      if (GDK_PROFILER_IS_RUNNING)
         gdk_profiler_add_mark (before, (g_get_monotonic_time () - before), "icon theme load", self->current_theme);
 
       if (was_valid)
@@ -3605,7 +3605,7 @@ icon_ensure_texture__locked (GtkIconPaintable *icon,
 
   g_assert (icon->texture != NULL);
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     gdk_profiler_add_markf (before, g_get_monotonic_time () - before, in_thread ?  "icon load (thread)" : "icon load" ,
                             "%s size %d@%d", icon->filename, icon->desired_size, icon->desired_scale);
 }
index 294a5d6b19c035f6e07584158a06c24611d56925..9bcf7c0000291e4a458f5f2d87bfd98833faf211 100644 (file)
@@ -12193,7 +12193,7 @@ gtk_widget_render (GtkWidget            *widget,
   gtk_widget_snapshot (widget, snapshot);
   root = gtk_snapshot_free_to_node (snapshot);
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     {
       after = g_get_monotonic_time ();
       gdk_profiler_add_mark (before, (after - before), "widget snapshot", "");
@@ -12211,7 +12211,7 @@ gtk_widget_render (GtkWidget            *widget,
 
       gsk_render_node_unref (root);
 
-      if (gdk_profiler_is_running ())
+      if (GDK_PROFILER_IS_RUNNING)
         {
           before = after;
           after = g_get_monotonic_time ();
index 5f179d0c99cafb0aac266b57df5428de31193a0b..eb49687ebdb3cfc7ee046e8e4058f9ea2d25a438 100644 (file)
@@ -6316,7 +6316,7 @@ gtk_window_check_resize (GtkWindow *self)
   else if (gtk_widget_get_visible (widget))
     gtk_window_move_resize (self);
 
-  if (gdk_profiler_is_running ())
+  if (GDK_PROFILER_IS_RUNNING)
     {
       gint64 after = g_get_monotonic_time ();
       gdk_profiler_add_mark (before, (after - before), "size allocation", "");